﻿using Echart.Model.TextStyle;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Echart.Model.TiTle
{
    public class title
    {
        /// <summary>
        /// 组件 ID。默认不指定。指定则可用于在 option 或者 API 中引用组件。
        /// </summary>
        public string id { get; set; }

        /// <summary>
        /// 是否显示标题组件。
        /// </summary>
        public bool? show { get; set; }

        /// <summary>
        /// 主标题文本，支持使用 \n 换行。
        /// </summary>
        public string text { get; set; }

        /// <summary>
        /// 主标题文本超链接。
        /// </summary>
        public string link { get; set; }

        /// <summary>
        /// 指定窗口打开主标题超链接。
        /// 可选：'self' 当前窗口打开  'blank' 新窗口打开
        /// </summary>
        public string target { get; set; }

        /// <summary>
        /// 标题文字风格
        /// </summary>
        public textStyle textStyle { get; set; }

        /// <summary>
        /// 副标题文本，支持使用 \n 换行。
        /// </summary>
        public string subtext { get; set; }

        /// <summary>
        /// 副标题文本超链接。
        /// </summary>
        public string sublink { get; set; }

        /// <summary>
        /// 指定窗口打开副标题超链接，
        /// 可选： 'self' 当前窗口打开  'blank' 新窗口打开
        /// </summary>
        public string subtarget { get; set; }

        /// <summary>
        /// 副标题文字风格
        /// </summary>
        public textStyle subtextStyle { get; set; }

        /// <summary>
        /// 整体（包括 text 和 subtext）的水平对齐。可选值：'auto'、'left'、'right'、'center'。
        /// </summary>
        public string textAlign { get; set; }

        /// <summary>
        /// 整体（包括 text 和 subtext）的垂直对齐。可选值：'auto'、'top'、'bottom'、'middle'。
        /// </summary>
        public string textVerticalAlign { get; set; }

        /// <summary>
        /// 是否触发事件。
        /// </summary>
        public string triggerEvent { get; set; }

        /// <summary>
        /// 标题内边距，单位px，默认各方向内边距为5，接受数组分别设定上右下左边距
        /// </summary>
        public double[] padding { get; set; }

        /// <summary>
        /// 主副标题之间的间距。
        /// </summary>
        public double? itemGap { get; set; }

        /// <summary>
        /// 所有图形的 zlevel 值。
        /// </summary>
        public double? zLevel { get; set; }

        /// <summary>
        /// 组件的所有图形的z值。控制图形的前后顺序。z值小的图形会被z值大的图形覆盖。
        /// </summary>
        public double? z { get; set; }

        /// <summary>
        /// title 组件离容器左侧的距离。
        /// </summary>
        public string left { get; set; }

        /// <summary>
        /// title 组件离容器上侧的距离
        /// </summary>
        public string top { get; set; }

        /// <summary>
        /// title 组件离容器下侧的距离
        /// </summary>
        public string bottom { get; set; }

        /// <summary>
        /// title 组件离容器右侧的距离
        /// </summary>
        public string right { get; set; }

        /// <summary>
        /// 标题背景色，默认透明。
        /// </summary>
        public string backgroundColor { get; set; }

        /// <summary>
        /// 标题的边框颜色
        /// </summary>
        public string borderColor { get; set; }

        /// <summary>
        /// 标题的边框线宽。
        /// </summary>
        public double? borderWidth { get; set; }

        /// <summary>
        /// 圆角半径，单位px，支持传入数组分别指定 4 个圆角半径
        /// </summary>
        public double[] borderRadius { get; set; }

        /// <summary>
        /// 图形阴影的模糊大小。注意：此配置项生效的前提是，设置了 show: true 以及值不为 tranparent 的背景色 backgroundColor。
        /// </summary>
        public double? shadowBlur { get; set; }

        /// <summary>
        /// 阴影颜色,注意：此配置项生效的前提是，设置了 show: true
        /// </summary>
        public string shadowColor { get; set; }

        /// <summary>
        /// 阴影水平方向上的偏移距离。注意：此配置项生效的前提是，设置了 show: true
        /// </summary>
        public double? shadowOffsetX { get; set; }

        /// <summary>
        /// 阴影水平方向上的偏移距离。注意：此配置项生效的前提是，设置了 show: true
        /// </summary>
        public double? shadowOffsetY { get; set; }
    }
}
